import axios from 'axios';

/**
 * 将网络图片转换为 File 对象
 * @param {string} url - 图片URL
 * @param {string} fileName - 文件名（含扩展名）
 * @returns {Promise<File>} - 返回File对象的Promise
 */
async function urlToFile(url, fileName) {
  try {
    // 1. 使用axios下载图片，设置responseType为arraybuffer
    const response = await axios.get(url, {
      responseType: 'arraybuffer',
      timeout: 10000 // 设置超时时间（毫秒）
    });

    // 2. 从响应头中获取Content-Type
    const contentType = response.headers['content-type'];
    if (!contentType) {
      throw new Error('无法获取图片类型');
    }

    // 3. 创建Blob对象
    const blob = new Blob([response.data], { type: contentType });

    // 4. 创建File对象（File是Blob的子类）
    const file = new File([blob], fileName, { type: contentType });

    return file;
  } catch (error) {
    console.error('图片转换失败:', error);
    throw error;
  }
}
export { urlToFile }